#include "ReseauMobile.h"

using namespace std;

//constructeurs :
ReseauMobile::ReseauMobile() : Reseau(), typeAntenne_("non communique"), capaciteAntenne_(0)
{}
ReseauMobile::ReseauMobile(int nid,string nomfournisseur,string datedeploiement,int capacitereseau,string typeantenne,int capaciteantenne)
	: Reseau(nid,nomfournisseur,datedeploiement,capacitereseau),  typeAntenne_(typeantenne), capaciteAntenne_(capaciteantenne)
{}
ReseauMobile::ReseauMobile(const ReseauMobile& reseaumobile) : Reseau(reseaumobile), typeAntenne_(reseaumobile.typeAntenne_), capaciteAntenne_(reseaumobile.capaciteAntenne_) 
{}

//methodes d'acces :
string ReseauMobile::getTypeAntenne() const
{
	return typeAntenne_;
}
int ReseauMobile::getCapaciteAntenne() const
{
	return capaciteAntenne_;
}

//methodes de modification :
void ReseauMobile::setTypeAntennne(string typeantenne)
{
	typeAntenne_=typeantenne;
}
void ReseauMobile::setCapaciteAntenne(int capaciteantenne)
{
	capaciteAntenne_=capaciteantenne;
}

//autres methodes :
void  ReseauMobile::affiche() const
{
	Reseau::affiche();
	cout<<"Type de l'antenne : "<<typeAntenne_<<endl<<endl;
}
double ReseauMobile::calculerCapacite() const
{
	double capacite = 0;
	if (capaciteAntenne_<capaciteReseau_) capacite=capaciteAntenne_;
	else capacite = capaciteReseau_;
	double taillemessage = -1*(Reseau::calculerCapacite() - capaciteReseau_);
	capacite -= taillemessage;
	return capacite;
}
double ReseauMobile::etendreCapacite(int capaciteAdditionnelle)
{if (capaciteAntenne_<capaciteReseau_) 
{ 
	capaciteAntenne_+=capaciteAdditionnelle; 
	cout<<"la capacite de votre antenne a ete augmentee de "<<capaciteAdditionnelle<<" pour un total de "<<capaciteAntenne_<<"."<<endl<<endl;
	return capaciteAntenne_;
}
else 
{ 
	capaciteReseau_+=capaciteAdditionnelle; 
	cout<<"la capacite de votre reseau a ete augmentee de "<<capaciteAdditionnelle<<" pour un total de "<<capaciteReseau_<<"."<<endl<<endl;
	return capaciteReseau_;
}
}
ReseauMobile& ReseauMobile::operator=(const ReseauMobile& reseau)
{
	Reseau::operator=(reseau);
	typeAntenne_=reseau.typeAntenne_;
	capaciteAntenne_=reseau.capaciteAntenne_;
	return *this;
}